﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.Produto;
using Negocio.Marca;
using Negocio.SubtipoProduto;
using Negocio.TipoProduto;

namespace qbaproject.Produto.Consultar
{
    public partial class consultarProduto : System.Web.UI.Page
    {
        private int paginaAtual = 0;
        private int cdProduto = 0;
        private int nrNotaMedia = 0;
        private int qtValorMedio = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                carregarDdl();
            }
        }

        public void carregarDdl()
        {
            var obNSubtipoProduto = new NSubtipoProduto();
            var obNMarca = new NMarca();
            var obNTipoProduto = new NTipoProduto();

            //Carregar tipo de produto
            ddlTiposProduto.DataSource = obNTipoProduto.pegarTiposProduto();
            ddlTiposProduto.DataBind();
            ddlTiposProduto.Items.Insert(0, new ListItem("Selecionar o tipo de produto", "0"));

            //Carregar status
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto();
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));

            //Carregar status
            ddlMarcas.DataSource = obNMarca.pegarMarcas();
            ddlMarcas.DataBind();
            ddlMarcas.Items.Insert(0, new ListItem("Selecionar a marca do produto", "0"));
        }

        protected void lnk_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Produto/Incluir/incluirProduto.aspx");
        }

        protected void lkbPesquisar_Click(object sender, EventArgs e)
        {
            carregarGrid();
        }

        public void carregarGrid()
        {

            var idSubtipoProduto = Convert.ToInt32(ddlSubtiposProduto.SelectedValue);
            var idMarca = Convert.ToInt32(ddlMarcas.SelectedValue);
            if (!string.IsNullOrEmpty(txtCdProduto.Text))
            {
                cdProduto = Convert.ToInt32(txtCdProduto.Text);
            }

            if (!string.IsNullOrEmpty(txtNrNotaMedia.Text))
            {
                nrNotaMedia = Convert.ToInt32(txtNrNotaMedia.Text);
            }

            if (!string.IsNullOrEmpty(txtQtValorMedio.Text))
            {
                qtValorMedio = Convert.ToInt32(txtQtValorMedio.Text);
            }

            
            var obNProduto = new NProduto();
            var obListProduto = obNProduto.pegarProdutos(txtDsProduto.Text, qtValorMedio, "", nrNotaMedia, txtTeEspecificacoes.Text, cdProduto, txtNmProduto.Text, txtTeLink.Text, idMarca, idSubtipoProduto);

            if (obListProduto.Tables[0].Rows.Count != 0)
            {
                
                divMsnPesquisaSucesso.Visible = true;
                lblNumEncontrados.Text = "Foram encontrados " + obListProduto.Tables[0].Rows.Count.ToString() + " registros.";
                divMsnPesquisaAtencao.Visible = false;
            }
            else
            {
                divMsnPesquisaSucesso.Visible = false;
                divMsnPesquisaAtencao.Visible = true;
            }

            grdResProduto.PageSize = 15;
            grdResProduto.AllowPaging = true;
            grdResProduto.PageIndex = paginaAtual;
            grdResProduto.DataSource = obListProduto;
            grdResProduto.DataBind();
        }

        protected void grdResProduto_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            paginaAtual = e.NewPageIndex;
            carregarGrid();
        }

        protected void lkbSim_Click(object sender, EventArgs e)
        {
            var idProduto = Convert.ToInt32(hdfIdProdutoRemover.Value);
            var obNProduto = new NProduto();
            obNProduto.Remover(idProduto);
            carregarGrid();
        }

        protected void lkbNao_Click(object sender, EventArgs e)
        {
            ModalPopupRemover.Hide();
        }

        protected void grdResProduto_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "editar":
                    var idProduto = e.CommandArgument.ToString();
                    Response.Redirect("~/Produto/Editar/editarProduto.aspx?id=" + idProduto);
                    break;
                case "remover":
                    var idProdutoRemover = e.CommandArgument.ToString();
                    hdfIdProdutoRemover.Value = idProdutoRemover;
                    ModalPopupRemover.Show();
                    break;
            }

        }

        protected void ddlTiposProduto_SelectedIndexChanged(object sender, EventArgs e)
        {
            var idTipoProduto = Convert.ToInt32(ddlTiposProduto.SelectedValue);
            var obNSubtipoProduto = new NSubtipoProduto();
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto(idTipoProduto);
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));

            ddlSubtiposProduto.Enabled = true;
        }
    }
}